# -*- encoding: utf-8 -*-
from django.db import models

#Tablas de constantes
class Esrb(models.Model):
    idesrb = models.IntegerField(primary_key=True,unique=True, db_index = True)
    descripcion = models.CharField(max_length = 45)
    edad = models.IntegerField()
    
    def __str__(self):
        return self.descripcion
     
    class Admin:
        pass
       
class Plataformas(models.Model):
    idplataforma = models.IntegerField(primary_key=True, unique=True, db_index = True)
    descripcion = models.CharField(max_length = 45)
    
    class Admin:
        pass
        
class Generos(models.Model):
    idgenero = models.IntegerField(primary_key=True,unique=True,db_index = True)
    descripcion = models.CharField(max_length = 45)
    
    def __str__(self):
        return self.descripcion
    
    class Admin:
        pass
    

class Roles(models.Model):
    idrol =  models.AutoField(primary_key=True,db_index = True)
    descripcion = models.CharField(max_length = 45)
    
    def __str__(self):
        return self.descripcion
    
    class Admin:
        pass
    


#Tablas Videojuegos
class Videojuegos(models.Model):
    idvideojuego = models.AutoField(primary_key=True,db_index = True)
    nombre =  models.CharField(max_length = 100)
    lanzamiento = models.DateField()
    coop = models.BooleanField()
    esrb = models.IntegerField()
    jugadores = models.IntegerField()
    distribuidora = models.CharField(max_length = 100)
    desarrolladora = models.CharField(max_length = 100)
    timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.nombre
    
    class Admin:
        pass
    
class Sinopsis_en(models.Model):
    idvideojuego = models.IntegerField(primary_key=True,unique=True, db_index = True)
    sinopsis =  models.CharField(max_length = 2000)
    
    def __str__(self):
        return self.idvideojuego
    
    class Admin:
        pass
        
class Sinopsis_es(models.Model):
    idvideojuego = models.IntegerField(primary_key=True,unique=True, db_index = True)
    sinopsis =  models.CharField(max_length = 2000)
    update_time = models.DateField()
    update_idusuario = models.IntegerField()
    read_only = models.BooleanField()
 
    def __str__(self):
        return self.idvideojuego
     
    class Admin:
        pass
#     
#Tablas Usuarios
class Usuarios(models.Model):
    idusuario = models.AutoField(primary_key=True,db_index = True)
    nombre =  models.CharField(max_length = 50)
    apellido1 = models.CharField(max_length = 50)
    apellido2 = models.CharField(max_length = 50)
    alias = models.CharField(max_length = 50)
    email = models.CharField(max_length = 100)
    rol = models.ForeignKey(Roles)
     
    def __str__(self):
        return self.alias
     
    class Admin:
        pass
         
 
class Estadisticas(models.Model): 
    idusuario = models.ForeignKey(Usuarios)   
    n_traducciones =  models.IntegerField()
     
    class Admin:
        pass
     
     
 
#Tablas relacionales    
class Re_videojuegos_plataformas(models.Model):
    idvideojuego = models.ForeignKey(Videojuegos)
    idplataforma = models.ForeignKey(Plataformas)
    class Meta:
        index_together = [["idvideojuego", "idplataforma"],   ]
      
    class Admin:
        pass
            
 
class Re_videojuegos_generos(models.Model):
    idvideojuego = models.ForeignKey(Videojuegos)
    idgenero = models.ForeignKey(Generos)            
    class Meta:
        index_together = [["idvideojuego", "idgenero"],   ]
     
    class Admin:
        pass
             
 
         
"""
 
1. Para crear un objeto, sólo importa la clase del modelo apropiada y crea una instancia pasándole valores para cada campo.
 
2. Para guardar el objeto en la base de datos, llama el método save() del objeto. Detrás de la escena, 
Django ejecuta aquí una sentencia SQL INSERT.
 
3.Para recuperar objetos de la base de datos, usa el atributo Publisher.objects. 
Busca una lista de todos los objetos Publisher en la base de datos con la sentencia Publisher.objects.all(). 
Detrás de escenas, Django ejecuta aquí una sentencia SQL SELECT.
 
"""        
     